package com.example.jpa.service;

import com.example.jpa.service.dto.BrandInfo;
import com.example.jpa.service.dto.RougeInfo;
import org.springframework.data.domain.Page;

import java.sql.SQLException;
import java.util.List;

/**
 * @author : zhayh
 * @Date : 2021-3-31 20:12
 * @Description: 口红商品的数据操作服务
 */

public interface RougeService {
    List<BrandInfo> getAllBrandInfo();
    RougeInfo getRougeById(Long id);
    RougeInfo addRouge(RougeInfo rougeInfo);
    RougeInfo updateRougePrice(Long id, Float price);
    Boolean deleteRouge(Long id);

    // PagerHelper分页方式用于MyBatis
    default List<RougeInfo> getByKeyword(String keyword, Integer pageIndex, Integer pageSize) {
        return null;
    }
    default List<RougeInfo> getByRowBounds(Integer pageIndex, Integer pageSize) {
        return null;
    }
    default List<RougeInfo> getByParam(Integer pageIndex, Integer pageSize) {
        return null;
    }

    // 测试编程式事务
    default void testTransaction(Long id, String name, Float price) {
    }
    default void testTransaction(Long id, String name) {
    }

    // 测试声明式事务
    default boolean testRuntimeExceptionTransaction(Long id, String name, Float price) {
        return false;
    }
    default boolean testCheckedExceptionTransaction(Long id, String name, Float price) throws SQLException {
        return false;
    }

    // JPA分页方式
    default Page<RougeInfo> getRougeInfoByKeyword(String keyword, Integer pageIndex, Integer pageSize) {
        return null;
    }
}
